home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-03
/
qbasicpg.zip
/
APPLE.BAS
< prev
next >
Wrap
BASIC Source File
|
1980-01-01
|
9KB
|
206 lines
10 KEY OFF:SCREEN 0,1:COLOR 15,0,0:WIDTH 40:CLS:LOCATE 5,19:PRINT "IBM"
20 LOCATE 7,8 ,0:PRINT "General utility programs"
30 COLOR 9 ,0:LOCATE 10,9,0:PRINT CHR$(213)+STRING$(21,205)+CHR$(184)
40 LOCATE 11,9,0:PRINT CHR$(179)+" ATTACK "+CHR$(179)
50 LOCATE 12,9,0:PRINT CHR$(179)+STRING$(21,32)+CHR$(179)
60 COLOR 9,0:LOCATE 13,9,0:PRINT CHR$(179)+" Version 1.1 "+CHR$(179)
70 BEEP
80 LOCATE 14,9,0:PRINT CHR$(212)+STRING$(21,205)+CHR$(190)
90 COLOR 15,0,1:LOCATE 17,7,0:PRINT "OCTOBER 7 1982 MOD-5-5-M "
100 COLOR 9,0:LOCATE 23,6,0:PRINT "Press space bar to continue..."
110 IF INKEY$ <> "" THEN GOTO 110
120 CMD$ = INKEY$
130 IF CMD$ = "" THEN GOTO 120
140 IF CMD$ = CHR$(27) THEN GOTO 160
150 IF CMD$ <> " " THEN GOTO 120
160 REM TRANSFER COMMAND
500 R1$=LEFT$(TIME$,2):R2$=RIGHT$(TIME$,2):R3$=MID$(TIME$,3,2)
510 RANDOMIZE VAL(R1$+R2$+R3$)
520 KEY OFF:SCREEN 0,1:SC=0:SF=60:BD=35:WIDTH 40:COLOR 7,0:CLS :DEF SEG=&H40:POKE &H17,&H40
530 LOCATE 1,1,0:PRINT "DO YOU WANT INSTRUCTIONS ?":I$=INKEY$:IF I$="" THEN 530 ELSE IF I$="Y" THEN GOSUB 1800
540 A$="_____/\_____/\__/\_______/\_/\____/\__/\___\[\_/\_____/\__oo\[\oo____/\___/\/\_ZP?___/\__/\\\\\\/\___\WW\___/\___sr__/\__\RRR\__\AAA\_/\__/\__sr__/\______/\_____/\__/\_______/\_/\____/\__/\?"
550 CLS:IF SC=0 THEN DIM X(4),Y(4),R(4)
560 L=0:Y1=0:Q=1:Y(1)=14:X(1)=40:Q1=1:SE=0:B=-1:Z=0
570 Y=INT(RND(1)*14)+8
580 COLOR 1:LOCATE 5,10,0:PRINT "________________________________________";
590 M$=STRING$(36,196):N$=STRING$(36,32)
600 COLOR 7:LOCATE 4,3:PRINT "BOMBS -";BD;" SCORE -";SC;:LOCATE 4,28:PRINT"LASERS -";SF;"
610 COLOR 1:LOCATE 5,10,0:PRINT "________________________________________";
620 B$=MID$(A$,1,40)
625 DEF SEG=0:POKE 1047,32
630 COLOR 6:LOCATE 23,1+Z,0:PRINT B$;
640 GOSUB 2100
650 L=L+1:IF L=150 THEN SOUND 40,0:GOTO 1580
660 IF Z>0 THEN Z=Z-1
670 B$=MID$(A$,L+Z,40-Z)
680 COLOR 6:LOCATE 23,1+Z,0:PRINT B$;
690 IF Y5=1 THEN SOUND 1500,0:SOUND 1500,.1:C$=INKEY$:GOTO 780
700 C$=INKEY$:IF C$="" THEN 800
710 IF C$="8" THEN Y1=-1
720 IF C$="2" THEN Y1=1
730 IF C$="5" THEN Y1=0
740 GOTO 780
780 IF BD>0 AND B=-1 AND Y<20 THEN IF C$="4" THEN GOSUB 1030
790 IF SF>0 AND C$="6" THEN GOSUB 1100
800 IF Y5<>1 THEN SOUND 32767,.01:SOUND 45,.01
810 IF Y+Y1=6 THEN Y5=1:Y1=1
820 IF Y+Y1=23 THEN SE=1:GOTO 1200
830 LOCATE Y,2:PRINT " ";
840 Y=Y+Y1
850 COLOR 15:LOCATE Y,2:PRINT ">M";CHR$(26);
860 IF B=1 THEN GOSUB 1070
870 FOR Q=1 TO Q1
880 IF R(Q)<>1 THEN 910
890 IF R(Q)=1 AND INT(RND(1)*50)>45 THEN R(Q)=0:GOTO 910
900 IF Q<Q1 THEN Q=Q+1:GOTO 880 ELSE 1020
910 LOCATE Y(Q),X(Q):PRINT " "
920 X(Q)=X(Q)-2:Y(Q)=Y(Q)+Y1(Q)
930 IF X(Q)=0 THEN GOSUB 1410
940 COLOR 7:LOCATE Y(Q),X(Q):PRINT CHR$(27);
950 IF (Q1<4 AND X(Q)=30) THEN GOSUB 1430
960 IF Y(Q)<Y THEN Y1(Q)=1
970 IF Y(Q)>Y THEN Y1(Q)=-1
980 IF INT(RND(1)*40)>35 THEN Y1(Q)=-Y1(Q)
990 IF Y(Q)+Y1(Q)=23 OR Y(Q)+Y1(Q)=6 THEN Y1(Q)=0
1000 IF ((X(Q)=4 OR X(Q)=2) AND Y(Q)=Y) THEN 1200
1010 NEXT Q
1020 GOTO 650
1030 IF Y/2=INT(Y/2) THEN BY=Y+1 ELSE BY=Y
1040 COLOR 7:B=1:BD=BD-1:Y2=Y:LOCATE 4,3:PRINT "BOMBS -";BD
1050 COLOR 2:LOCATE BY,3:PRINT "";
1060 RETURN
1070 IF BY=21 THEN GOSUB 1450:RETURN
1080 COLOR 2:LOCATE BY,3:PRINT " ";:BY=BY+2:LOCATE BY,3:PRINT "";
1090 RETURN
1100 COLOR 4:LOCATE Y,5:PRINT M$;:SF=SF-1:COLOR 7:LOCATE 4,28:PRINT "LASERS -";SF
1110 SOUND 32767,0:SOUND 900,1:FOR D=1 TO 20:NEXT D:SOUND 32767,0
1120 LOCATE Y,5:PRINT N$;
1130 FOR W=1 TO Q1:IF Y=Y(W) AND X(W)>4 AND R(W)<>1 THEN 1160
1140 NEXT W
1150 RETURN
1160 SC=SC+20:COLOR 7:LOCATE 4,14:PRINT "SCORE -";SC
1170 LOCATE Y(W),X(W):PRINT "0";:FOR S=150 TO 160:SOUND S,.1:NEXT S:LOCATE Y(W),X(W):PRINT " ";
1180 Y(W)=INT(RND(1)*16)+7:X(W)=40:R(W)=1
1190 RETURN
1200 SOUND 32767,0:LOCATE Y,2:PRINT " ";
1210 COLOR 7
1220 IF SE=1 THEN Y=Y+Y1
1230 LOCATE Y,2:PRINT ">M";CHR$(26);:SOUND (RND(1)*99)*C+40,.01
1240 FOR D=1 TO 100:NEXT D
1250 FOR C1=178 TO 176 STEP -1:FOR C=15 TO 0 STEP -1
1260 LOCATE Y,2:PRINT CHR$(C1);CHR$(C1);CHR$(C1);:SOUND (RND(1)*99)*C+40,.01
1270 NEXT C:NEXT C1
1280 SOUND 39,0
1290 LOCATE Y,2:PRINT " "
1295 IF SC>800 THEN FOR N=1 TO 15:COLOR N,N:CLS:SOUND N*37,7:FOR T=1 TO 115:NEXT T:NEXT N:COLOR 7,0:CLS:LOCATE 11,6:PRINT"G A M E O V E R":PRINT:PRINT:PRINT" GOOD JOB!!":DEF SEG=0:POKE 1047,0:END
1300 A$="YOU FAILED"
1310 FOR L=1 TO 10:B$=MID$(A$,L,1)
1320 LOCATE 10,14+L:PRINT B$;
1330 SOUND 60,.1:SOUND 60,0:FOR D=1 TO 50:NEXT D
1340 NEXT L
1350 A$="YOUR MISSION"
1360 FOR L=1 TO 12:B$=MID$(A$,L,1)
1370 LOCATE 12,13+L:PRINT B$;
1380 SOUND 60,.1:SOUND 60,0:FOR D=1 TO 50:NEXT D
1390 NEXT L
1400 DEF SEG=0:POKE 1047,0:END
1410 Y(Q)=INT(RND(1)*15)+8:X(Q)=40:R(Q)=1:Y1(Q)=0
1420 RETURN 1010
1430 Q1=Q1+1:Y(Q1)=INT(RND(1)*15)+8:X(Q1)=40:Y1(Q)=0
1440 RETURN
1450 B=-1
1460 BE=SCREEN(BY+2,3)
1470 LOCATE BY,3:PRINT " ";
1480 BY=BY+2
1490 SOUND 50,0
1500 FOR D=178 TO 176 STEP -1:FOR S=140 TO 142:LOCATE BY,1:COLOR INT(RND(1)*16+1):PRINT " ";STRING$(3,D):SOUND S,.01:NEXT S:SOUND 40,0:NEXT D
1510 IF BE=210 OR BE=193 THEN SC=SC+(25-Y2)*12
1514 IF BE=>169 AND BE<>210 AND BE<>193 AND BE<>196 THEN SC=SC+INT(RND*30)+10
1520 COLOR 7:LOCATE 4,14:PRINT "SCORE -";SC
1530 Z=4
1540 LOCATE BY,2:PRINT " "
1550 RETURN
1560 BY=BY+2
1570 SOUND 50,0
1580 'COLOR 7:LOCATE 7,1:PRINT "\ /";
1590 FOR D=1 TO 150:NEXT D
1600 COLOR 7:LOCATE 7,1:PRINT " \ /";
1610 FOR D=1 TO 150:NEXT D
1620 LOCATE 7,1:PRINT "/ \":COLOR 14
1630 FOR L=7 TO Y-1:LOCATE L,3:PRINT "[";
1640 FOR D=1 TO 100:NEXT D:SOUND L*100,.1:NEXT L
1650 COLOR 15
1660 FOR L=Y-1 TO 7 STEP -1:LOCATE L+1,2:PRINT " ";:LOCATE L,2:PRINT ">="+CHR$(26);
1670 FOR D=1 TO 100:NEXT D:SOUND L*100,.1:NEXT L
1680 COLOR 7:LOCATE L+1,2:PRINT " ";
1690 FOR D=1 TO 150:NEXT D
1700 LOCATE L+1,1:PRINT " \ / ";
1710 FOR D=1 TO 150:NEXT D
1720 LOCATE L+1,1:PRINT " ";
1730 LOCATE L,2:PRINT "___";
1740 A$="MISSION COMPLETE"
1750 FOR L=1 TO 16:B$=MID$(A$,L,1)
1760 LOCATE 10,11+L:PRINT B$;
1770 SOUND 60,.1:SOUND 60,0:FOR D=1 TO 50:NEXT D
1780 NEXT L
1790 IF SC>500 THEN SOUND 100,3:BEEP:SOUND 120,1:BEEP:SOUND 200,3:SOUND 400,3:SOUND 500,4:SOUND 600,5:SOUND 700,2:SOUND 800,3:SOUND 700,2:SOUND 200,3:GOTO 1795
1793 SOUND 100,2:SOUND 300,2:SOUND 500,3:END
1795 LOCATE 15,5:PRINT "ON TO THE NEXT ROUND!"
1797 FOR O=1 TO 1900:NEXT O
1799 GOTO 540
1800 CLS
1810 ' +
1820 PRINT " YOUR MISSION IS TO ATTACK AND DESTROY"
1830 PRINT "THE APPLE COMPUTER MANUFACTURING PLANT."
1840 PRINT "YOU ARE ALLOTED 35 BOMBS AND 60 LASERS."
1850 PRINT "THERE ARE APPLE-OWNED FIGHTERS TRYING"
1860 PRINT "TO STOP YOU,YOU MUST DESTROY THEM WITH"
1870 PRINT "YOUR LASERS.IF YOU GET HIT BY THEM THEN"
1880 PRINT "YOU ARE DESTROYED,IF YOU HIT THE GROUND"
1890 PRINT "THEN YOU ARE DESTROYED.IF YOU GO OUT OF"
1900 PRINT "THE ATMOSPHERE (THE BLUE LINE),THEN YOU"
1910 PRINT "LOOSE ALL CONTROL EXCEPT LASERS AND"
1920 PRINT "BOMBS,AND YOUR SHIP WILL BEGIN FALLING."
1930 PRINT " DROP BOMBS ON ALL STRUCTURES AND YOU"
1940 PRINT "WILL GET POINTS. THE APPLE PLANT (SHOWN"
1950 PRINT "BELOW) IS WORTH THE MOST POINTS."
1960 PRINT
1970 COLOR 6:PRINT "___sr__/\__\RRR\__\AAA\_/\__/\__sr__/\__";
1980 COLOR 7+16:PRINT " ^^^ ^^^"
1990 COLOR 7:PRINT
2000 PRINT " IF YOUR SCORE IS HIGH ENOUGH AFTER "
2010 PRINT "ROUND ONE THEN YOU ARE READY TO FACE "
2020 PRINT "ROUND TWO. "
2030 LOCATE 25,1,0:PRINT "press space bar to continue";
2040 A$=INKEY$:IF A$="" THEN 2040
2050 PRINT " USE CURSOR CONTROL KEYS TO MOVE,8 TO"
2060 PRINT " GO UP,2 TO GO DOWN,5 TO STOP,4 TO "
2070 PRINT " DROP BOMBS, AND 6 TO FIRE THE LASER"
2080 A$=INKEY$:IF A$="" THEN 2080
2090 CLS:RETURN
2100 'COLOR 7:LOCATE 7,1:PRINT "\ /";
2110 FOR D=1 TO 150:NEXT D
2120 COLOR 7:LOCATE 7,1:PRINT " \ /";
2130 FOR D=1 TO 150:NEXT D
2140 LOCATE 7,1:PRINT "/ \":COLOR 14
2150 FOR L=7 TO Y-1:COLOR 14:LOCATE L,2:PRINT " [ ";:COLOR 15:LOCATE L+1,2:PRINT ">="+CHR$(26);
2160 FOR D=1 TO 100:NEXT D:SOUND L*100,.1:NEXT L
2170 COLOR 15
2180 FOR L=Y-1 TO 7 STEP -1:LOCATE L,3:PRINT " ";
2190 FOR D=1 TO 100:NEXT D:SOUND L*100,.1:NEXT L
2200 COLOR 7:LOCATE L+1,2:PRINT " ";
2210 FOR D=1 TO 150:NEXT D
2220 LOCATE L+1,1:PRINT " \ / ";
2230 FOR D=1 TO 150:NEXT D
2240 LOCATE L+1,1:PRINT " ";
2250 LOCATE L,2:PRINT "___";
2260 FOR D=1 TO 150:NEXT D:COLOR 1:LOCATE L,2:PRINT "___";
2270 RETURN
T " ";
2250 LOCATE L,2:PRINT "___";
2260 FOR D=1 TO 150:NEXT D:COLOR 1:LOCATE L,2:PRINT "